草庐IT

function - Golang 函数测试

全部标签

ruby - 使用 Rack::Test 和 Sinatra 测试 Controller 实例变量

我有一个Sinatra应用程序,它根据用户是否登录以只读或可编辑的方式提供页面。Controller设置一个变量@can_edit,View使用它来隐藏/显示编辑链接。我如何在测试中测试@can_edit的值?我不知道如何在Rack::Test下获取Controller的当前实例。我使用class_eval来stubController中的logged_in?方法,但我不得不求助于检查last_response.body我的编辑链接以查看是否设置了@can_edit。如何直接测试@can_edit的值? 最佳答案 不幸的是,如果不修

ruby - Rspec:如何测试递归?

我想测试是否使用特定参数递归调用方法。我的方法:classRecursabledefrec(arg)rec(7)unlessarg==7endenddescribeRecursabledoit"shouldrecurse"dor=Recursable.new('test')r.should_receive(:rec).with(0).orderedr.should_receive(:rec).with(7).orderedr.rec(0)endend出乎意料的是,RSpec失败了:expected:recwith(7)once,butreceivedit0times知道我的方法有什么问

ruby - 用 RSpec 包裹在 block 中的测试方法

在我实际操作的简化示例中,假设我有2次对数据库的调用:Repo.add(something_stringy)Repo.remove(something_floaty)我想对数据库调用使用mock,因为真正的调用将在别处进行测试:let(:repo){repo=double("Repo")repo.should_receive(:add).with(instance_of(String))repo.should_receive(:remove).with(instance_of(Float))repo}before{FakeKlass.const_set:Repo,repo}这一切都很好

ruby - 如何在 ARel 中使用 CONCAT() 等函数?

有没有办法让ARel将列名写入(经过净化、可能别名等)CONCAT()和其他SQL函数?这是howtodoitwithAVG()...?>name=Arel::Attribute.new(Arel::Table.new(:countries),:name)=>#population=Arel::Attribute.new(Arel::Table.new(:countries),:population)=>#Country.select([name,population.average]).to_sql=>"SELECT`countries`.`name`,AVG(`countries`

ruby - Rails 测试显示 0% 全部通过时通过

我的Rails应用程序通过了测试,但随后显示0%通过。它是一个转换为3.1的Rails3应用程序。5tests,11assertions,0failures,0errors,0pendings,0omissions,0notifications0%passed如果我生成一个新的Rails3.1应用程序,它没有这个“通过”行。1tests,1assertions,0failures,0errors,0skips两者都在1.9.2p290下运行。我尝试删除test-unit但这似乎没有什么不同,我认为没有其他突出的原因会导致它。我猜有些事情正在触发使用不同的测试运行程序。这些是为我的应用安

ruby - rspec 中的依赖测试

我编写功能测试,我需要做的测试取决于之前测试的通过情况。假设我有一个按钮可以打开一个窗口,其中有一个功能。也就是说,为了检查此功能,我需要首先检查按钮的正确操作(即打开窗口或不起作用)。所以,我需要这样做,如果单击按钮时测试失败,则测试不会运行以检查功能窗口。单独编写测试-对我来说不是一种选择。我希望看到这样的内容:describe"sometests"doopen_result=nilit"shouldcheckworkbutton"doclick_to_button()open_result=window_opened?open_result.should==trueendifop

ruby - ruby 中有基数函数吗?

在阅读此处的另一个问题时,在创建URL缩短服务时,建议获取行的ID,然后将其转换为基数62(0到9,a到z,A到Z)。在Ruby中是否有一个标准的函数来完成这个?编辑:不确定我是否足够清楚。是这样的:123456.radix(62)应该给出123456的基数62。我正在考虑写一个,如果它还没有的话。 最佳答案 Ruby整数类中的to_s方法有一个可选参数指定基数,类似于:123456.to_s(16)但是,它只接受2到36之间的值作为基数。如果您想编写自己的编码器,Thissnippet可能是一个不错的起点。还有一个base62Ru

ruby - 在 Ruby 中,如何控制 Test::Unit 测试的运行顺序?

例如,当运行这些测试时,我想确保test_fizz总是先运行。require'test/unit'classFooTest更新:我为什么要这样做?我的想法是,某些测试(那些测试更简单、更基本的方法)的早期失败将使跟踪系统中的问题变得更容易。例如,bar的成功取决于fizz是否正常工作。如果fizz坏了,我想马上知道,因为没有必要担心bar,它也会失败,但输出要复杂得多测试结果。 最佳答案 您可以使用Test::Unit::TestCase#test_order=:defined定义测试顺序例子:gem'test-unit'#Iuse

Ruby,如何创建一个 Rack::Request 用于测试目的?

我有一个库,它接受一个Rack::Request并在其上做一些事情。我想通过单元测试而不是功能测试来测试它。所以我必须自己创建一个Rack::Request实例,我该怎么做? 最佳答案 Rack本身包含一些针对Rack::Request的单元测试,您可以将它们用作起点(example)。Rack::Request.new(Rack::MockRequest.env_for("http://example.com:8080/",{"REMOTE_ADDR"=>"10.10.10.10"}))

ruby-on-rails - Rails 3.1 与 PostgreSQL : GROUP BY must be used in an aggregate function

我正在尝试加载按user_id分组并按created_at排序的最新10个艺术。这适用于SqlLite和MySQL,但在我的新PostgreSQL数据库上出错。Art.all(:order=>"created_atdesc",:limit=>10,:group=>"user_id")ActiveRecord错误:ArtLoad(18.4ms)SELECT"arts".*FROM"arts"GROUPBYuser_idORDERBYcreated_atdescLIMIT10ActiveRecord::StatementInvalid:PGError:ERROR:column"arts.i